<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>插入排序</title>
</head>

<body>
  <script type="text/javascript">

    /* 
      insert: 实现插入排序
        @params
          ary [array] 需要排序的数组
        @return
          [array] 排序后的新数组
     */

    function insert(ary) {
      // 1、准备一个新数组，先保存一个数据
      let temp = [];
      temp.push(ary[0]);
      // 2、从第二项开始依次比较
      for (let i = 1; i < ary.length; i++) {
        // A 是新的数据
        let A = ary[i];
        // 和 Temp 里的数据依次比较（从后向前比）
        for (let j = temp.length - 1; j >= 0; j--) {
          // 每一次要比较的手里的牌
          let B = temp[j];
          // 如果当前新数据 A 比要比较的数据 B 大了，把 A 放到 B 的后面
          if (A > B) {
            temp.splice(j + 1, 0, A);
            break;
          }
          // 已经比到第一项
          if (j === 0) {
            temp.unshift(A);
          }
        }
      }
      return temp;
    }
    let ary = [12, 8, 24, 16, 1]
    ary = insert(ary);
    console.log(ary)
  </script>
</body>

</html>